<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            background: #000;
            text-align: center
        }

        #c1 {
            background: #fff;
        }
    </style>

</head>

<body>
    <canvas id="c1" width="800" height="600">

    </canvas>
</body>
<script>
    /**
     * 1.数据
     * 煤炭 水利  核能  风能
     * 3800 152  361   487
     * 2.算总和
     * 4800
     * 3.占比
     * 79.17%  3.17%  7.52%  10.15%
     * 4.占多少角度
     * 285 11.4 27 36.5
     * 5每个数据的起始角度，和结束角度
     */
    //角度转弧度
    function d2a(n){
        return n*Math.PI/180
    }
    //弧度转角度
    function a2d(n){
        return n*180/Math.PI
    }
    let oC = document.getElementById('c1');
    let gd = oC.getContext('2d');       //图形上下文-绘图用的接口
    
    let cx = 400, cy = 300, r = 150;
    let startAng=10,endAng=20;
    //第一步
    gd.moveTo(cx, cy);
    // x=cx+a
    // y=cy-b
    // x= cx+Math.s
    let x=cx+Math.sin(d2a(startAng))*r
    let y=cy-Math.cos(d2a(startAng))*r
    gd.lineTo(x, y)
    //第二步
    gd.arc(cx,cy,r,d2a(startAng-90),d2a(endAng-90),false)
    //第三部
    gd.closePath()
    // gd.arc(400,300,150,0*Math.PI/180,90*Math.PI/180,false)
    gd.stroke()
</script>

</html>